<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        console.log(1);
         let promise = new Promise((resolve,reject)=>{
            //  同步代码
             console.log(2)
        //    初始化状态
           if(1){
               console.log(3)
            //    将初始化状态转变为成功状态
               resolve('小王子');
           }else{
            //    将初始化状态转变为失败状态
               reject('xxx');
           }
       })
       console.log(promise);
    // 成功调用then
       promise.then((data)=>{
        //    异步微任务
           console.log(4)
           console.log(data);
       })
    //    失败调用catch
       promise.catch(err=>{
        //    异步微任务
           console.log(err);
       })
       setTimeout(()=>{
           console.log(5);
       },0)
       console.log(6);

       /* 
       事件循环机制（event loop）
       先同步（promise回调函数中的代码为同步代码） 异步微任务（promise）  异步宏任务（定时器、DOM绑定的事件、ajax）

       1 2 3 promise 6 4 小王子  5
       
       
       
       */
    </script>
</body>
</html>